//#include "coin.h"
//#include <QPainter>
//#include<QList>

//Coin::Coin(QGraphicsItem *parent)
//    : QGraphicsItem(parent)
//    , mCurrentFrame2()
//{
//    setFlag(ItemClipsToShape);                   // 限制绘图在 boundingRect 内，不绘制超出部分
//    mPixmap2 = QPixmap(":images/coin.png");      // 加载金币动画精灵图（多个帧拼接在一起）
//}

//void Coin::nextFrame2() {
//    mCurrentFrame2 += 38;       // 每帧宽度为 38 像素，切换到下一帧
//    if (mCurrentFrame2 >= 300)  // 若超出最大帧宽（共约 8 帧）
//        mCurrentFrame2 = 0;     // 从头循环
//}

//QRectF Coin::boundingRect() const {
//    return QRectF(0, 0, 39, 41);  // 当前图元的绘制与碰撞区域大小
//}

//void Coin::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) {
//    painter->drawPixmap(0, 0, mPixmap2, mCurrentFrame2, 0, 39, 41);  // 绘制当前帧
//    setTransformOriginPoint(boundingRect().center());               // 设置旋转中心为图元中心
//    Q_UNUSED(widget);  // 这两个参数没用到，避免编译器警告
//    Q_UNUSED(option);
//}

//int Coin::type() const
//{
//  return Type;
//}
#include "coin.h"
#include <QPainter>

Coin::Coin(QGraphicsItem *parent)
    : QGraphicsItem(parent),
      mCurrentFrame2(0)
{
    setFlag(ItemClipsToShape);  // 限制绘图区域为 boundingRect()
    mPixmap2 = QPixmap(":/images/coin.png");  // 帧图路径，横向拼接的金币动画图
}

QRectF Coin::boundingRect() const {
    return QRectF(0, 0, 39, 41);  // 保持与实际帧大小一致
}

void Coin::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) {
    // 按当前帧绘制金币动画
    painter->drawPixmap(0, 0, mPixmap2, mCurrentFrame2, 0, 39, 41);
    setTransformOriginPoint(boundingRect().center()); // 用于动画中心设置
}

void Coin::nextFrame2() {
    mCurrentFrame2 += 39;
    if (mCurrentFrame2 >= mPixmap2.width()) {
        mCurrentFrame2 = 0;
    }
    update(); // 请求重绘当前图元
}

int Coin::type() const {
    return Type; // 允许通过 typeid 或 QGraphicsItem::type() 识别为 Coin
}
